class Dwarf < ActiveRecord::Base belongs_to :mountain belongs_to :spouse, :class_name => "Dwarf", :foreign_key => "spouse_id" has_one :king_of, :class_name => "Mountain", :foreign_key => "king_id" has_one :spouse_of, :class_name => "Dwarf", :foreign_key => "spouse_id" has_and_belongs_to_many :visited_mountains, :class_name => "Mountain", :join_table => "visits" validates_presence_of :name, :born validates_numericality_of :born end